# -*- coding:utf-8 -*-
"""
@Time:  2024/6/15 10:06
@Auth:  Mrs.Gou 
@Function:  用自己最擅长的编程语言实现
一瓶汽水1元，两个瓶可以换一瓶汽水，有20元，最多可以喝几瓶？
"""

# 附加算法
'''
分析：
一开始喝完20瓶，得到20个盖子
20个盖子换10瓶，得到10个盖子
重复第二步，直到剩余一个盖子
可以向老板借一瓶，喝完，用两个盖子抵
'''
sum_num = 0
money = 20

# 一开始喝完20瓶
sum_num += money
gai_zi = money

while gai_zi > 1:
    # 考虑奇数和偶数
    if gai_zi % 2 == 0:
        # 换了一半
        sum_num += gai_zi / 2
        # 得到的盖子也只有一半
        gai_zi = gai_zi / 2
    else:
        # 换一半，少一瓶
        sum_num += gai_zi // 2
        # 得到的盖子也只有一半，多一个
        gai_zi = gai_zi // 2 + 1

# 跟老板借一瓶
if gai_zi == 1:
    sum_num += 1
print(sum_num)
